home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS09.ADF / MicroEMACS / keymap.h < prev    next >
C/C++ Source or Header  |  1986-05-22  |  7KB  |  269 lines

  1. #include <devices/keymap.h>
  2.  
  3. static UBYTE LoKeyMapTypes[64] = {
  4.    KC_VANILLA,
  5.    KC_VANILLA,
  6.    KC_VANILLA,
  7.    KC_VANILLA,
  8.    KC_VANILLA,
  9.    KC_VANILLA,
  10.    KC_VANILLA,
  11.    KC_VANILLA,
  12.    KC_VANILLA,
  13.    KC_VANILLA,
  14.    KC_VANILLA,
  15.    KC_VANILLA,
  16.    KC_VANILLA,
  17.    KC_VANILLA,
  18.    KCF_NOP,
  19.    KC_VANILLA,
  20.    KC_VANILLA,
  21.    KC_VANILLA,
  22.    KC_VANILLA,
  23.    KC_VANILLA,
  24.    KC_VANILLA,
  25.    KC_VANILLA,
  26.    KC_VANILLA,
  27.    KC_VANILLA,
  28.    KC_VANILLA,
  29.    KC_VANILLA,
  30.    KC_VANILLA,
  31.    KC_VANILLA,
  32.    KCF_NOP,
  33.    KC_VANILLA,
  34.    KC_VANILLA,
  35.    KC_VANILLA,
  36.    KC_VANILLA,
  37.    KC_VANILLA,
  38.    KC_VANILLA,
  39.    KC_VANILLA,
  40.    KC_VANILLA,
  41.    KC_VANILLA,
  42.    KC_VANILLA,
  43.    KC_VANILLA,
  44.    KC_VANILLA,
  45.    KC_VANILLA,
  46.    KC_VANILLA,
  47.    KCF_NOP,
  48.    KCF_NOP,
  49.    KC_VANILLA,
  50.    KC_VANILLA,
  51.    KC_VANILLA,
  52.    KCF_NOP,
  53.    KC_VANILLA,
  54.    KC_VANILLA,
  55.    KC_VANILLA,
  56.    KC_VANILLA,
  57.    KC_VANILLA,
  58.    KC_VANILLA,
  59.    KC_VANILLA,
  60.    KC_VANILLA,
  61.    KC_VANILLA,
  62.    KC_VANILLA,
  63.    KCF_NOP,
  64.    KC_VANILLA,
  65.    KC_VANILLA,
  66.    KC_VANILLA,
  67.    KC_VANILLA
  68. };
  69.  
  70. static UBYTE LoKeyMap[64][4] = {
  71.    {0xFE, 0xE0,  '~',  '`' },
  72.    {0xA1, 0xB1,  '!',  '1' },
  73.    {0xC0, 0xB2,  '@',  '2' },
  74.    {0xA3, 0xB3,  '#',  '3' },
  75.    {0xA4, 0xB4,  '$',  '4' },
  76.    {0xA5, 0xB5,  '%',  '5' },
  77.    {0xDE, 0xB6,  '^',  '6' },
  78.    {0xA6, 0xB7,  '&',  '7' },
  79.    {0xAA, 0xB8,  '*',  '8' },
  80.    {0xA8, 0xB9,  '(',  '9' },
  81.    {0xA9, 0xB0,  ')',  '0' },
  82.    {0xDF, 0xAD,  '_',  '-' },
  83.    {0xAB, 0xBD,  '+',  '=' },
  84.    {0xFC, 0xDC,  '|',  '\\' },
  85.    {0x00, 0x00, 0x00, 0x00 },
  86.    {0xB0, 0xB0,  '0',  '0' },
  87.    {0xD1, 0xF1,  'Q',  'q' },
  88.    {0xD7, 0xF7,  'W',  'w' },
  89.    {0xC5, 0xE5,  'E',  'e' },
  90.    {0xD2, 0xF2,  'R',  'r' },
  91.    {0xD4, 0xF4,  'T',  't' },
  92.    {0xD9, 0xF9,  'Y',  'y' },
  93.    {0xD5, 0xF5,  'U',  'u' },
  94.    {0xC9, 0xE9,  'I',  'i' },
  95.    {0xCF, 0xEF,  'O',  'o' },
  96.    {0xD0, 0xF0,  'P',  'p' },
  97.    {0xFB, 0xDB,  '{',  '[' },
  98.    {0xFD, 0xDD,  '}',  ']' },
  99.    {0x00, 0x00, 0x00, 0x00 },
  100.    {0xB1, 0xB1,  '1',  '1' },
  101.    {0xB2, 0xB2,  '2',  '2' },
  102.    {0xB3, 0xB3,  '3',  '3' },
  103.    {0xC1, 0xE1,  'A',  'a' },
  104.    {0xD3, 0xF3,  'S',  's' },
  105.    {0xC4, 0xE4,  'D',  'd' },
  106.    {0xC6, 0xE6,  'F',  'f' },
  107.    {0xC7, 0xE7,  'G',  'g' },
  108.    {0xC8, 0xE8,  'H',  'h' },
  109.    {0xCA, 0xEA,  'J',  'j' },
  110.    {0xCB, 0xEB,  'K',  'k' },
  111.    {0xCC, 0xEC,  'L',  'l' },
  112.    {0xBA, 0xBB,  ':',  ';' },
  113.    {0xA2, 0xA7,  '"',  '\'' },
  114.    {0x00, 0x00, 0x00, 0x00 },
  115.    {0x00, 0x00, 0x00, 0x00 },
  116.    {0xB4, 0xB4,  '4',  '4' },
  117.    {0xB5, 0xB5,  '5',  '5' },
  118.    {0xB6, 0xB6,  '6',  '6' },
  119.    {0x00, 0x00, 0x00, 0x00 },
  120.    {0xDA, 0xFA,  'Z',  'z' },
  121.    {0xD8, 0xF8,  'X',  'x' },
  122.    {0xC3, 0xE3,  'C',  'c' },
  123.    {0xD6, 0xF6,  'V',  'v' },
  124.    {0xC2, 0xE2,  'B',  'b' },
  125.    {0xCE, 0xEE,  'N',  'n' },
  126.    {0xCD, 0xED,  'M',  'm' },
  127.    {0xBC, 0xAC,  '<',  ',' },
  128.    {0xBE, 0xAE,  '>',  '.' },
  129.    {0xBF, 0xAF,  '?',  '/' },
  130.    {0x00, 0x00, 0x00, 0x00 },
  131.    {0xAE, 0xAE,  '.',  '.' },
  132.    {0xB7, 0xB7,  '7',  '7' },
  133.    {0xB8, 0xB8,  '8',  '8' },
  134.    {0xB9, 0xB9,  '9',  '9' }
  135. };
  136.  
  137. static UBYTE LoCapsable[8] = {
  138.    0x00, 0x00, 0xFF, 0x03, 0xFF, 0x01, 0xFE, 0x00
  139. };
  140.  
  141. static UBYTE LoRepeatable[8] = {
  142.    0xFF, 0xBF, 0xFF, 0xEF, 0xFF, 0xEF, 0xFF, 0xF7
  143. };
  144.  
  145. static UBYTE HiKeyMapTypes[40] = {
  146.    KC_NOQUAL,           /* Space */
  147.    KCF_STRING | KCF_SHIFT,       /* Backspace */
  148.    KC_NOQUAL,           /* Tab */
  149.    KC_NOQUAL,           /* ENTER (numeric) */
  150.    KCF_CONTROL,           /* Return */
  151.    KC_NOQUAL,           /* Escape */
  152.    KCF_STRING | KCF_SHIFT,       /* DEL */
  153.    KCF_NOP,
  154.    KCF_NOP,
  155.    KCF_NOP,
  156.    KCF_ALT,                   /* Numeric - */
  157.    KCF_NOP,
  158.    KCF_STRING | KCF_SHIFT | KCF_ALT,    /* Cursor Up */
  159.    KCF_STRING | KCF_SHIFT | KCF_ALT,    /* Cursor Down */
  160.    KCF_STRING | KCF_SHIFT | KCF_ALT,    /* Cursor Right */
  161.    KCF_STRING | KCF_SHIFT | KCF_ALT,    /* Cursor Left */
  162.    KCF_STRING | KCF_SHIFT,        /*F1*/
  163.    KCF_STRING | KCF_SHIFT,
  164.    KCF_STRING | KCF_SHIFT,
  165.    KCF_STRING | KCF_SHIFT,
  166.    KCF_STRING | KCF_SHIFT,
  167.    KCF_STRING | KCF_SHIFT,
  168.    KCF_STRING | KCF_SHIFT,
  169.    KCF_STRING | KCF_SHIFT,
  170.    KCF_STRING | KCF_SHIFT,
  171.    KCF_STRING | KCF_SHIFT,        /*F10*/
  172.    KCF_NOP,
  173.    KCF_NOP,
  174.    KCF_NOP,
  175.    KCF_NOP,
  176.    KCF_NOP,
  177.    KC_NOQUAL,                 /* HELP */
  178.    KCF_NOP,
  179.    KCF_NOP,
  180.    KCF_NOP,
  181.    KCF_NOP,
  182.    KCF_NOP,
  183.    KCF_NOP,
  184.    KCF_NOP,
  185.    KCF_NOP
  186. };
  187.  
  188. static UBYTE HiKeyMap[40][4] = {
  189.    {0x00, 0x00, 0x00,  ' ' },   /* Space */
  190.    {0x00, 0x00, 0x17, 0x08 },   /* Backspace */
  191.    {0x00, 0x00, 0x00, 0x09 },   /* Tab */
  192.    {0x00, 0x00, 0x00, 0x0A },   /* ENTER (numeric) */
  193.    {0x00, 0x00, 0x0A, 0x0D },   /* Return */
  194.    {0x00, 0x00, 0x00, 0x1B },   /* Escape */
  195.    {0x00, 0x00, 0xFF, 0x7F },   /* DEL */
  196.    {0x00, 0x00, 0x00, 0x00 },
  197.    {0x00, 0x00, 0x00, 0x00 },
  198.    {0x00, 0x00, 0x00, 0x00 },
  199.    {0x00, 0x00, 0xFF,  '-' },   /* Numeric - */
  200.    {0x00, 0x00, 0x00, 0x00 },
  201.    {0xD6, 0xBC, 0xD6, 0x10 },   /* Cursor Up */
  202.    {0x16, 0xBE, 0x16, 0x0E },   /* Cursor Down */
  203.    {0xC6, 0x05, 0xC6, 0x06 },   /* Cursor Right */
  204.    {0xC2, 0x01, 0xC2, 0x02 },   /* Cursor Left */
  205.    {0x00, 0x00, 0x00, 0x00 },    /*F1*/
  206.    {0x00, 0x00, 0x00, 0x00 },
  207.    {0x00, 0x00, 0x00, 0x00 },
  208.    {0x00, 0x00, 0x00, 0x00 },
  209.    {0x00, 0x00, 0x00, 0x00 },
  210.    {0x00, 0x00, 0x00, 0x00 },
  211.    {0x00, 0x00, 0x00, 0x00 },
  212.    {0x00, 0x00, 0x00, 0x00 },
  213.    {0x00, 0x00, 0x00, 0x00 },
  214.    {0x00, 0x00, 0x00, 0x00 },    /*F10*/
  215.    {0x00, 0x00, 0x00, 0x00 },
  216.    {0x00, 0x00, 0x00, 0x00 },
  217.    {0x00, 0x00, 0x00, 0x00 },
  218.    {0x00, 0x00, 0x00, 0x00 },
  219.    {0x00, 0x00, 0x00, 0x00 },
  220.    {0x00, 0x00, 0x00, 0x15 },    /* HELP */
  221.    {0x00, 0x00, 0x00, 0x00 },
  222.    {0x00, 0x00, 0x00, 0x00 },
  223.    {0x00, 0x00, 0x00, 0x00 },
  224.    {0x00, 0x00, 0x00, 0x00 },
  225.    {0x00, 0x00, 0x00, 0x00 },
  226.    {0x00, 0x00, 0x00, 0x00 },
  227.    {0x00, 0x00, 0x00, 0x00 },
  228.    {0x00, 0x00, 0x00, 0x00 }
  229. };
  230.  
  231. static UBYTE HiCapsable[8] = {
  232.    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
  233. };
  234.  
  235. static UBYTE HiRepeatable[8] = {
  236.    0x47, 0xF4, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00
  237. };
  238.  
  239. static char *HiStrings[] = {
  240.    "\x01\x04\x02\x05\b\x1B\x7F",            /* Backspace */
  241.    "\x01\x04\x02\x05\x04\x1BD",                /* DEL */
  242.    "\x01\x08\x02\x09\x02\x0B\x02\x0D\x10\x1BV\x1B<\x1B<",/* CU */
  243.    "\x01\x08\x01\x09\x02\x0A\x02\x0C\x0E\x16\x1B>\x1B>", /* CD */
  244.    "\x01\x08\x01\x09\x02\x0A\x02\x0C\x06\x05\x1BF\x1BF", /* CR */
  245.    "\x01\x08\x01\x09\x02\x0A\x02\x0C\x02\x01\x1BB\x1BB", /* CL */
  246.    "\x01\x04\x01\x05\x13\x12",        /* F1 ^s   ^r   */
  247.    "\x02\x04\x02\x06\x1B%\x18\x02",    /* F2 ^[%  ^x^b */
  248.    "\x02\x04\x02\x06\x1BF\x1BB",    /* F3 ^[f  ^[b  */
  249.    "\x02\x04\x02\x06\x1BM\x18=",    /* F4 ^[m  ^x=  */
  250.    "\x02\x04\x02\x06\x18\x1A\x18Z",    /* F5 ^x^z ^xz  */
  251.    "\x02\x04\x02\x06\x18\x0E\x18\x10",    /* F6 ^x^n ^x^p */
  252.    "\x02\x04\x02\x06\x18(\x18)",    /* F7 ^x(  ^x)  */
  253.    "\x02\x04\x02\x06\x18E\x18\x04",    /* F8 ^xe  ^x^d */
  254.    "\x02\x04\x01\x06\x1BW\x17",        /* F9 ^[w  ^w   */
  255.    "\x01\x04\x02\x05\x19\x1BY",        /* F10 ^y  ^[y  */
  256.    NULL
  257. };
  258.  
  259. static struct KeyMap KeyMap = {
  260.    (APTR)LoKeyMapTypes,
  261.    (APTR)LoKeyMap,
  262.    (APTR)LoCapsable,
  263.    (APTR)LoRepeatable,
  264.    (APTR)HiKeyMapTypes,
  265.    (APTR)HiKeyMap,
  266.    (APTR)HiCapsable,
  267.    (APTR)HiRepeatable
  268. };
  269.